import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'

// 按需引入 element-puls
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      resolvers: [ElementPlusResolver()]
    }),
    Components({
      resolvers: [ElementPlusResolver()]
    })
  ],
  resolve: {
    alias: {
      '@': resolve(__dirname, './src')
    }
  },
  // 服务设置
  server: {
    host: true, // host设置为true才可以使用network的形式，以ip访问项目
    port: 9527, // 端口号
    open: true, // 自动打开浏览器
    cors: true, // 跨域设置允许
    strictPort: true, // 如果端口已占用直接退出
    force: true, // 是否强制依赖预构建
    hmr: true, // HMR链接（热更新）
    // 接口代理
    proxy: {
      '/api': {
        target: 'https://www.bumanjianuo.com.cn/api', // 目标服务器地址
        ws: true, // 是否启用 WebSocket
        changeOrigin: true, // 是否修改请求头中的 Origin 字段
        /* 原来的 开发注释 */
        rewrite: (path) => path.replace(/^\/api/, ''),
      },
    }
  },
  build: {
    assetsDir: 'static',
    brotliSize: false,
    // chunk 大小警告的限制
    chunkSizeWarningLimit: 2000,
    // 混淆器 生产代码混淆，terser 构建后文件体积更小
    minify: 'terser',
    // 在生产环境移除console.log
    terserOptions: {
      compress: {
        drop_console: true,
        drop_debugger: true
      }
    }
  }
})
